昨天我已經讓 AI 成功回答「普拿疼是什麼」,今天要進一步挑戰 Prompt Engineering(提示工程),也就是如何設計提示詞,讓 AI 的回答更符合需求。
AI 的回答其實取決於我們怎麼問問題。就像同一個人,可能會依照問題的問法給出不同答案。
在 OpenAI 的 Chat API 裡,主要有三種訊息角色:
system:設定 AI 的角色與行為(例如:你是一個藥師助理)。
user:使用者的問題。
assistant:AI 的回覆(由模型自動產生)。
Prompt Engineering 就是如何設計 system + user 的提示,來引導 AI 輸出想要的回答。
以下是我設計的實驗程式:
from openai import OpenAI
client = OpenAI(api_key="API_KEY")
prompts = [
{"role": "system", "content": "你是一位專業的藥師,請用嚴謹的醫學口吻回答問題。"},
{"role": "system", "content": "你是一位醫學教授,請用詳細且學術的方式解釋。"},
{"role": "system", "content": "你是一位藥學系大學生,請用簡單易懂的方式分享知識。"},
{"role": "system", "content": "你是一位小朋友的健康老師,請用故事和比喻來解釋。"}
]
question = {"role": "user", "content": "普拿疼是什麼?"}
for p in prompts:
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[p, question]
)
print("🔹 Prompt:", p["content"])
print("回覆:", response.choices[0].message.content)
print("="*50)
藥師版本:
普拿疼(Panadol)是一種含有對乙醯氨基酚(Acetaminophen)的止痛與退燒藥,常用於頭痛、牙痛、肌肉痠痛、發燒等症狀。需注意劑量,以避免肝毒性。
醫學教授版本:
普拿疼的主要成分為 Acetaminophen(對乙醯氨基酚),其藥理作用主要是抑制中樞神經系統的前列腺素合成,進而達到止痛與退燒效果。與 NSAIDs 不同,其抗發炎效果較弱。
藥學學生版本:
普拿疼就是大家常吃的止痛藥,主要成分是 Acetaminophen。它可以退燒跟止痛,但要注意不要一次吃太多,不然會傷肝喔!
小朋友健康老師版本:
普拿疼就像一個「退燒超人」,能幫助趕走頭痛怪獸和發燒怪獸。但如果一次吃太多,反而會傷害身體,所以要乖乖按照藥師的指示吃。
今天的實驗讓我體會到 Prompt 有多好用:
不同的 system prompt,AI 的回答風格會差很多。可以針對不同族群設計回答,像是對小孩、對專業人士、對一般民眾。這個技巧對我的專案非常重要,因為未來我希望它能同時支援「專業解釋」與「簡單解釋」,依使用者需求切換。